package com.smart.milvus.bean;

import com.smart.milvus.autoconfigure.MilvusProperties;
import com.smart.milvus.base.*;
import lombok.Data;
import org.springframework.context.ApplicationContext;

import java.io.Serializable;

/**
 * Milvus 全局缓存
 */
@Data
public class GlobalConfig implements Serializable {
    public volatile static GlobalConfig INSTANCE = null;
    public volatile static ApplicationContext CTX = null;
    /**
     * Mapper父类
     */
    private Class<? extends MilvusMapperImpl> mapperImplClass = MilvusMapperImpl.class;
    /**
     * Milvus属性
     */
    private MilvusProperties milvusProperties;
    /**
     * 默认 SP EL 执行程序
     */
    private DefaultSpElExecutor defaultSpElExecutor;
    /**
     * 动态集合处理程序
     */
    private DynamicCollectionHandler dynamicCollectionHandler;
    /**
     * 主键生成器
     */
    private IdentifierGenerator identifierGenerator;
    /**
     * 注解控制器
     */
    private AnnotationHandler annotationHandler;
    /**
     * JSON 类型处理程序
     */
    private JsonTypeHandler jsonTypeHandler;
    /**
     * 参与 CollectionInfo 的初始化
     */
    private PostInitCollectionInfoHandler postInitCollectionInfoHandler ;
}
